package com.dcm.live.mapper;

import com.dcm.live.entity.LiveRoomEntity;
import com.dcm.live.vo.LiveVo;
import com.dcm.live.vo.OnlineVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author : [pengrongsheng]
 * @createTime : [2021/3/28]
 */
public interface LiveRoomMapper {
    /**
     * 获得所有直播列表
     *
     * @return List<TbItem>
     */
    List<LiveRoomEntity> findAll();

    /**
     * 根据id查询直播间
     *
     * @param id
     * @return
     */
    LiveRoomEntity findRoomById(@Param("id") Long id);


    /**
     * 根据状态 查询
     *
     * @param status
     * @return
     */
    List<LiveRoomEntity> findRoomByStatus(@Param("status") Integer status);

    /**
     * 开通直播间
     *
     * @param item
     */
    void addRoom(LiveRoomEntity item);

    /**
     * 根据id删除 直播间
     *
     * @param id
     */
    void deleteRoomById(Long id);

    /**
     * 按照直播标题关键字查找搭配，倒序前四名
     *
     * @param keyWords
     * @return
     */
    List<LiveRoomEntity> findRoomByKeyWords(@Param("keyWords") String keyWords);

    /**
     * 显示直播人、在线人数、在线人头像只展示10个；
     *
     * @param nickName
     * @return
     */
    List<OnlineVo> findOnline(@Param("nickName") String nickName);

    /**
     * 根据 更新 直播间
     *
     * @param liveRoomEntity
     */
    void updateRoom(LiveRoomEntity liveRoomEntity);

    /**
     * 查看当前观看人数、当前关注人数、当前点赞人数、当前下单人数
     *
     * @param id
     * @return
     */
    List<LiveVo> findLive(@Param("id") Long id);

    /**
     * 点击进入数据详情
     *
     * @param id
     * @param status
     */
    void liveStatus(@Param("id") Long id, @Param("status") Integer status);


    /**
     * 已结束状态：删除
     *
     * @param id
     * @param status
     */
    void liveDelete(@Param("id") Long id, @Param("status") Integer status);

    /**
     * 根据主播id查询
     *
     * @param likedUserId
     * @return
     */
    LiveRoomEntity findRoomByUserId(@Param("likedUserId") Long likedUserId);


}
